package com.jomoo.account.service;

import java.util.List;

import com.jomoo.common.exception.AccountException;
import com.jomoo.common.pojo.JomooAccount;

/**
 * 
* @ClassName: AccountService 
* @Description:  
* @author sddm.haosc
* @date 2017年12月12日 上午9:55:13 
*
 */
public interface AccountService {

	/**
	 * 
	* @Title: addAccount 
	* @param iType
	* @param fNum
	* @param strAccountTime
	* @param strAccountRemark
	* @throws AccountException    设定文件 
	* @return Integer    返回类型 
	 */
	Integer addAccount(Integer iType, Float fNum, String strAccountTime, 
														String strAccountRemark) throws AccountException;
	
	/**
	 * 
	* @Title: getServiceCards 
	* @Description: 查询账目信息 
	* @param @param iType
	* @param @param iState
	* @param @param fstartNum
	* @param @param fendNum
	* @param @param strBeginTime
	* @param @param strEndTime
	* @param @param strFlag
	* @param @return
	* @param @throws AccountException    设定文件 
	* @return List<JomooAccount>    返回类型 
	* @throws
	 */
	List<JomooAccount> getServiceCards(Integer iType, Integer iState, Float fstartNum, 
				Float fendNum, String strBeginTime, String strEndTime, String strFlag) throws AccountException;
	
	/**
	 * 
	* @Title: deleteAccount 
	* @Description: T作废账单信息 
	* @param @param iId
	* @param @return
	* @param @throws AccountException    设定文件 
	* @return Integer    返回类型 
	* @throws
	 */
	Integer deleteAccount(Integer iId) throws AccountException;
	
	/**
	 * 
	* @Title: getMonthAccountView 
	* @Description: 获取当月产品各自安装数量用于图表显示 
	* @param @return
	* @param @throws AccountException    设定文件 
	* @return List    返回类型 
	* @throws
	 */
	@SuppressWarnings("rawtypes")
	List getMonthAccountView() throws AccountException;
	
	/**
	 * 
	* @Title: getAccountViewCreate 
	* @TODO: 按账单选择类型按需生成图表
	* @param @param iType
	* @param @param iCustomer
	* @param @param iSetupType
	* @param @param iProduct
	* @param @param iSpec
	* @param @param iSetupState
	* @param @param strBeginTime
	* @param @param strEndTime
	* @param @return
	* @param @throws AccountException    设定文件 
	* @return List    返回类型 
	* @throws
	 */
	@SuppressWarnings("rawtypes")
	List getAccountViewCreate(Integer iType,Integer iCustomer, 
										Integer iSetupType, Integer iProduct, 
												Integer iSpec, Integer iSetupState, 
													String strBeginTime, String strEndTime) throws AccountException;
}
